home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / Icon 8.1 / mep1 / External Functions / XCMDs⁄XFCNs / C Sources / SetGlobal.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-09-08  |  1016 b   |  45 lines  |  [TEXT/KAHL]

  1. /*
  2.  * SetGlobal -- XFCN to set a HyperCard interface global to a ProIcon string
  3.  */
  4.  
  5. #include "IconXCmd.h"
  6. #define NULL 0L
  7.  
  8. pascal void main(paramPtr)
  9. XCmdBlockPtr    paramPtr;
  10.     {
  11.     Handle h;
  12.  
  13. /* check parameters */
  14.  
  15.     if (paramPtr->paramCount != 2) {
  16.         paramPtr->returnValue = (Handle)NewString("\pNeed two parameters in SetGlobal XFCN");
  17.         PtoCstr(*(paramPtr->returnValue));
  18.         return;
  19.         }
  20.  
  21.     /* Lock global name, convert to a Pascal string */
  22.     h = paramPtr->params[0];
  23.     HLock(h);
  24.     CtoPstr(*h);
  25.  
  26.     /* Do SetGlobal operation */
  27.     paramPtr->inArgs[0] = (long)*h;
  28.     paramPtr->inArgs[1] = (long)paramPtr->params[1];
  29.     paramPtr->request = xreqSetGlobal;
  30.     ((procPtr)(paramPtr->entryPoint))();
  31.     
  32.     /* Unlock global name */
  33.     HUnlock(h);
  34.     
  35.     /* Return result.  Check for error. */
  36.     if (paramPtr->result != xresSucc) {
  37.         paramPtr->returnValue = (Handle)NewString("\pUnsufficient memory in SetGlobal XFCN");
  38.         PtoCstr(*(paramPtr->returnValue));
  39.         }
  40.     else
  41.         paramPtr->returnValue = NULL;        /* All OK, return empty string */
  42.     }
  43.         
  44.  
  45.